import 'dart:convert';
import 'package:flutter_my_app/models/api_response.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:http/http.dart' as http;
import 'package:riverpod_annotation/riverpod_annotation.dart';
import '../models/activity.dart';

// 代码生成正常工作的必要条件
part 'activity_provider.g.dart';
//函数示@riverpod注解表示 给Consumer组件获取的
/// 这将创建一个名为 `activityProvider` 的提供者程序
/// 它可以缓存函数执行的结果
@riverpod
Future<Activity> activity(Ref ref) async {
  // 使用 package:http, 我们可以从 Bored API 获取一个随机的活动。
  // https://guangdiu.com/api/gethots.php
  final response = await http.get(Uri.https('https://guangdiu.com', '/api/gethots.php'));
  // 使用 dart:convert, 然后我们将 JSON 有效负载解码为 Map 数据结构。
  final json = jsonDecode(response.body) as Map<String, dynamic>;
  // 最后，我们将 Map 转换为 Activity 实例。
  return Activity.fromJson(json);
}


@riverpod
Future<ApiResponse> guangdiuList(Ref ref) async {
  // 使用 package:http, 我们可以从 Bored API 获取一个随机的活动。
  // https://guangdiu.com/api/gethots.php
  final response = await http.get(Uri.https('guangdiu.com', '/api/gethots.php'));
  print("map $response");
  // 使用 dart:convert, 然后我们将 JSON 有效负载解码为 Map 数据结构。
  final json = jsonDecode(response.body) as Map<String, dynamic>;
  // 最后，我们将 Map 转换为 Activity 实例。
  return ApiResponse.fromJson(json);
}